using System;
using System.Collections.Generic;
using System.Text;

namespace Impact.Views
{
    /// <summary>
    /// interface for view that front-ends install process
    /// </summary>
    public interface IInstallerView : IPageView
    {

        /// <summary>
        /// retrieve the number of the current step out of the state machine
        /// </summary>
        int CurrentStep { get; set; }

        /// <summary>
        /// run validation controls and return true if all pass
        /// </summary>
        bool IsValid { get; }

        /// <summary>
        /// display the given step in the view
        /// </summary>
        void ShowStep(int stepNumber);

        /// <summary>
        /// retrieve the data to be used for the administrator
        /// </summary>
        AccountData Administrator { get; }

    }

    /// <summary>
    /// simple container for data describing a membership account
    /// </summary>
    public struct AccountData
    {
        /// <summary>
        /// username the user will login with
        /// </summary>
        public string Username;
        /// <summary>
        /// password the user will use to login
        /// </summary>
        public string Password;
        /// <summary>
        /// valid email address for the user
        /// </summary>
        public string Email;
    }

}
